package com.ruoyi.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.system.domain.ProjectProgress;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 项目进度Mapper接口
 *
 * @author Mr.wei
 * @date 2020-10-13
 */
public interface ProjectProgressMapper extends BaseMapper<ProjectProgress> {

    /**
     * 查询项目进度信息
     *
     * @param projectProgress 查询条件
     * @return List<ProjectProgress>
     */
    List<ProjectProgress> findProjectProgressInfo(ProjectProgress projectProgress);

    /**
     * 生成父级ID
     *
     * @param markList 标记集合
     */
    void generatePid(@Param("markList") Integer[] markList);

    /**
     * 获取项目概况信息
     *
     * @return Map
     */
    Map<String, Object> findProjectOverview();

    /**
     * 获取人员进度信息
     *
     * @return List
     */
    List<Map<String, Object>> findStaffProgress();

    /**
     * 获取当前时间人员参与情况
     *
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return List
     */
    List<String> findPersonnel(@Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 获取项目阶段信息
     *
     * @param projectProgress 条件
     * @return List
     */
    List<ProjectProgress> findProjectStageInfo(ProjectProgress projectProgress);

    /**
     * 生成子集数
     *
     * @param markList 标记集合
     */
    void generateSubNumber(@Param("markList") Integer[] markList);

    /**
     * 获取标记
     *
     * @return Integer
     */
    Integer findProjectMark();

    /**
     * 获取子集数据
     *
     * @param projectProgress 子集条件
     * @return List
     */
    List<Map<String, Object>> findProjectStageChildren(ProjectProgress projectProgress);
}
